Advice for modeling a database for multiple games

HI @Pavel_Duchovny,

Thanks for the good reference to Henriks problem. I have bit similar, and did some research about patterns.

I have a followup question and thought perhaps it would be ok to continue in this thread, feel free to move or ask me to create a new topic.

I’m tracking users progress like following. User has few paths to complete. Paths have few stages to complete that are basically different games.

The data is used to give feedback to the user and also for analytical purposes and exported to olap(bq).I was also thinking about having different games data
in their own collections, but Pavel didn’t suggest that approach. Different games amount would be less than fifty.

I was thinking something like following, but started thinking that maybe all the stage data should be as key-value pairs? Also if want at some point more detailed data about gameplay for analytical purposes,
maybe that data should be in its own collection to prevent not to fill 15 mb limit and because it is not accessed by the app?


"Paths":
{
  "PathOrder": [Path1, Path3, Path4, Path2]     
  "Path1":
  { 	
     "Stage1":
     {
        "GameName": "SpeedDrill", 
	"PlayTime":92,
	"FirstPlayTime": 168123123,
	"LastPlayTime": 168124567,
	"SpecData": 
		{[
		{"key": "Crashes", "value": 2},
		{"key": "AvgSpeed", "value": 65},
		{"key": "Laps", "value": 7}
		]}
        "completed": false,
        "attempts": 1
     }, 
     "Stage2":
     {
	"GameName": "AccuracyDrill", 
	...
     }

  }
  "Path2":
  ...